Elastic Cloud Enterprise で独自ドメインを利用する
おはようございます、藤本です。
Elastic Cloud Enterprise 機能を一つ一つ試しています。Elastic Cloud Enterprise の概要について知りたい方は以下の記事をご参照ください。
- 【速報】Elastic Cloud Enterprise の Alpha版がリリースされました
- Elastic Cloud Enterprise を AWS 環境にデプロイしてみた
- Elastic Cloud Enterprise を本番環境を想定して構築する
今回は Elastic Cloud Enterprise からデプロイした Elasticsearch クラスタ、Kibanaに独自ドメインを利用してみました。
現在、アルファ版のため、GAリリースまでに実装が変わる可能性があることはご了承ください。
Elastic Cloud Enterprise と DNS
Enterprise Cloud Enterprise を利用する上で登場する DNS 名は WebUI へのアクセス、Elasticsearch(Kibana)へのアクセスの 2つです。
- WebUI へのアクセス
- Elastic Cloud Enterprise インストール時に設定した
Public Hostname
が利用される - インストール時に表示される URL に
Public Hostname
が表示されますが、ホスト名の利用が必須ではない
- Elastic Cloud Enterprise インストール時に設定した
- Elasticsearch クラスタへのアクセス
- Elasticsearch クラスタ時に Elastic Cloud Enterprise が払い出される
- 払い出された DNS 名が Proxy に登録され、Proxy が Allocator で動作する Elasticsearch コンテナへのアクセスをコントロールする
- デフォルトでは、前回のエントリに記載しているような DNS 名(下記キャプチャ参照)
b3382af99309425bbfbbd2f71ee9e651.172.31.44.80.xip.io
b3382af99309425bbfbbd2f71ee9e651
: Elasticsearch クラスタ固有のホスト名172.31.44.80
: Elastic Cloud Enterprise インストール時に設定したHost IP
xip.io
: 固定値
172.31.44.80.xip.io
が Elasticsearch クラスタ共通のドメインとなり、Elastic Cloud Enterprise の設定で変更することができます。自身の環境で利用する場合、名前解決できるようにまず間違いなく、自身の環境が持つドメインに変更することでしょう。
個人的にはサブドメイン(例:ece.example.com)を Elastic Cloud Enterprise のドメインに設定し、(AWS 環境であれば)ワイルドカードのレコード(例:*.ece.exaple.com)を Proxy の ELB の DNS 名(ALIASのAレコード)を登録するのがいいのかなと思っています。
変更してみる
それでは WebUI から Elasticsearch Cloud Enterprise のドメイン設定を変更してみます。
環境
- EC2 x 3台(3AZ)
- インスタンスタイプ : r4.large
- OS : Ubuntu 14.04
- ELB
- Elasticsearch、Kibana クラスタ用インターナル ELB
- Route 53
- プライベートホステッドゾーン example.com
- レコードセット *.ece.example.com → ELB
独自ドメインを設定する
Webブラウザを立ち上げて、Elastic Cloud Enterprise の WebUI へアクセスします。左メニューの Platform からリージョンを選択します。
Settings を選択します。Cluster endpoints が利用するドメインの設定となります。前述した通り、IPaddress.xip.io
で設定されています。
ここを今回利用する独自ドメインece.exapmle.com
に設定します。ece.exapmle.com
を入力したら、Update Cluster endpoints をクリックします。
Confirm save をクリックします。
設定はこれだけです。
動作確認
Elasticsearch
Elasticsearch クラスタの設定を見てみましょう。左メニューの Clusters から Elasticsearch クラスタを選択します。
Endpoints から Elasticsearch から確認すると、クラスタ固有のランダム文字列、プラス設定したece.example.com
になっていますね。
ちなみに変更前は以下の URL でした。変わるのは、設定したドメインの部分だけで、クラスタ固有のランダム文字列は変わりません。
それではアクセスしてみます。
$ curl -u elastic:MhJxf0cUhPcBaRlFFLocUw== c15b10071b614956979558254aaa71d7.ece.example.com:9200/ { "name" : "instance-0000000001", "cluster_name" : "c15b10071b614956979558254aaa71d7", "cluster_uuid" : "GtP-Vwn8TkGE06QuTPRh6w", "version" : { "number" : "5.0.2", "build_hash" : "f6b4951", "build_date" : "2016-11-24T10:07:18.101Z", "build_snapshot" : false, "lucene_version" : "6.2.1" }, "tagline" : "You Know, for Search" }
ちなみに古いドメインでも接続できました。仕様なのかな?
$ curl -u elastic:MhJxf0cUhPcBaRlFFLocUw== c15b10071b614956979558254aaa71d7.172.31.62.168.xip.io:9200/ { "name" : "instance-0000000002", "cluster_name" : "c15b10071b614956979558254aaa71d7", "cluster_uuid" : "GtP-Vwn8TkGE06QuTPRh6w", "version" : { "number" : "5.0.2", "build_hash" : "f6b4951", "build_date" : "2016-11-24T10:07:18.101Z", "build_snapshot" : false, "lucene_version" : "6.2.1" }, "tagline" : "You Know, for Search" }
Kibana
続いて、Kibana にアクセスしてみましょう。
Endpoints の Kibana から確認すると、こちらも設定したece.example.com
ドメインになっています。
アクセスしてみます。Kibana(X−Pack)のログイン画面が表示されました。
証明書を登録していないので証明書エラーが出ますが今回はそのまま突破しています。
まとめ
いかがでしたでしょうか?
Elastic Cloud Enterprise はほぼ例外なく独自ドメインで利用することになると思うので、この設定は必須の設定となることでしょう。